package com.w.usercenter.once.importuser;

import org.springframework.scheduling.annotation.Scheduled;

/**
 * 使用spring Scheduled 基本示例
 *
 * @author wzp
 * @Scheduled(cron = "0 0 12 * * ?") 使用 cron 表达式
 * @Scheduled(fixedRate = 5000, initialDelay = 1000) fixedRate:执行任务的间隔,initialDelay:第一次任务在给定时间后执行,,单位:毫秒
 * @since 2024/8/21
 */
// 测试记得打开注解
//@Component
public class ScheduledTasks {

    // 使用cron表达式，每天中午12点执行
    @Scheduled(cron = "0 0 12 * * ?")
    public void reportCurrentTimeWithCron() {
        System.out.println("执行定时任务: " + System.currentTimeMillis() / 1000);
    }

    // 每5秒执行一次
    @Scheduled(fixedRate = 5000)
    public void reportCurrentTimeWithFixedRate() {
        System.out.println("执行定时任务（固定频率）: " + System.currentTimeMillis() / 1000);
    }

    // 任务完成后延迟2秒再次执行
    @Scheduled(fixedDelay = 2000)
    public void reportCurrentTimeWithFixedDelay() throws InterruptedException {
        Thread.sleep(1000); // 模拟任务执行时间
        System.out.println("执行定时任务（固定延迟）: " + System.currentTimeMillis() / 1000);
    }

    // 首次执行前延迟1秒
    @Scheduled(fixedRate = 5000, initialDelay = 1000)
    public void executeTaskWithInitialDelay() {
        System.out.println("带初始延迟的定时任务: " + System.currentTimeMillis() / 1000);
    }
}
